package com.b.btest;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;

public class AlbumTrackActivity extends Activity {
	public static String alAl;
	private TextView albumTrackAlbum;

	/** SE用*/
	private SoundPool sp;
	int seID_List2 = -1;
	
	//BGM
	MediaPlayer mp;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_albumtrack);

		//リソースファイルからSEをロード
		sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
		seID_List2 = sp.load(this, R.raw.list2, 1);

		//インテントによる取得
		Intent intent = getIntent();
		if (intent != null) {
			// AlbumActivityで選択したアーティストを取得
			final String albumAlbum = intent.getStringExtra("albumAlbum");
			alAl = albumAlbum;
		}
		//albumTrackAlbumテキストビューを取得
		albumTrackAlbum = (TextView) findViewById(R.id.albumTrackAlbum);
		//artistTrackArtistテキストビューにインテントされたアーティスト名を表示
		albumTrackAlbum.setText(alAl);

		final List<AlbumTrack> tracks = AlbumTrack.getItems(this);
		final ListView albumTrackList = (ListView) findViewById(R.id.list);
		ListAlbumTrackAdapter adapter = new ListAlbumTrackAdapter(this, tracks);
		albumTrackList.setAdapter(adapter);

		//既存の効果音を無効に設定
		albumTrackList.setSoundEffectsEnabled(false);

		albumTrackList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

			// 項目がクリックされた時のハンドラ
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

				//効果音を鳴らす
				sp.play(seID_List2, 1.0F, 1.0F, 0, 0, 1.0F);

				String musicPath = null;
				String musicTitle = null;
				String musicArtist = null;

				int num = 0;

				for (AlbumTrack track : tracks) {
					if (num == position) {
						musicPath = track.path;
						musicTitle = track.title;
						musicArtist = track.artist;
						break;
					}
					num++;
				}

				Intent intent = new Intent(AlbumTrackActivity.this, ThirdActivity.class);
				intent.putExtra("musicPath", musicPath);
				intent.putExtra("musicTitle", musicTitle);
				intent.putExtra("musicArtist", musicArtist);
				startActivity(intent);
			}
		});

	}
	
	/**
	 * アクティビティ開始時に呼ばれる.
	 */
	@Override
	public void onStart() {
		super.onStart();
		//BGMを再生
		mp = MediaPlayer.create( this, R.raw.menumusic);
		mp.setLooping(true);
		mp.start();
	}
	
	/**
	 * アクティビティの停止時に呼ばれる.
	 */
	@Override
	public void onStop() {
		super.onStop();
		//BGMを停止
		mp.stop();
		mp.release();
	}

	/**
	 * アクティビティ終了時に呼ばれる.
	 */
	public void onDestoroy() {
		super.onDestroy();
		sp.stop(seID_List2);
		sp.unload(seID_List2);
		sp.release();
	}

	//バックボタンを押下した際の処理
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			sp.stop(seID_List2);
			sp.unload(seID_List2);
			sp.release();
			this.finish();
			return true;
		}
		return false;
	}

}